Skip to content

feat(CHAIN-3446): add signer enumeration to SystemConfigGlobal#204

Merged
leopoldjoy merged 3 commits intomainfrom
leopoldjoy/chain-3446-contracts-add-signer-enumeration-to-systemconfigglobal
Mar 11, 2026
Merged

feat(CHAIN-3446): add signer enumeration to SystemConfigGlobal#204
leopoldjoy merged 3 commits intomainfrom
leopoldjoy/chain-3446-contracts-add-signer-enumeration-to-systemconfigglobal

Conversation

@leopoldjoy
Copy link
Contributor

Summary

Adds getRegisteredSigners() to SystemConfigGlobal, enabling callers to read the full set of registered signers in a single view call. This is a prerequisite for the prover registrar service (CHAIN-3449), which needs to enumerate on-chain signers each poll cycle to detect orphaned entries for deregistration.

Changes

  • Import and use Solady EnumerableSetLib.AddressSet (already used elsewhere in the multiproof contracts)
  • Add EnumerableSetLib.AddressSet internal _registeredSigners storage (appended to end of layout — safe for upgrades)
  • registerSigner: call _registeredSigners.add() alongside the existing signerPCR0 mapping update
  • deregisterSigner: call _registeredSigners.remove() alongside the existing mapping delete
  • New getRegisteredSigners() external view returns (address[]) — no event scanning required, always authoritative
  • DevSystemConfigGlobal.addDevSigner: also maintains the set so tests reflect production behaviour
  • Version bumped to 0.2.0
  • 6 new tests covering empty set, register, deregister, multiple signers, mixed operations, and idempotent deregistration

Test plan

  • forge test --match-contract SystemConfigGlobalTest — 36 tests pass

@linear
Copy link

linear bot commented Mar 11, 2026

@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Mar 11, 2026

✅ Heimdall Review Status

Requirement Status More Info
Reviews 1/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@leopoldjoy leopoldjoy merged commit 0ed5c6e into main Mar 11, 2026
8 checks passed
@leopoldjoy leopoldjoy deleted the leopoldjoy/chain-3446-contracts-add-signer-enumeration-to-systemconfigglobal branch March 11, 2026 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants